//
//  InfoPlistKey.swift
//  Documentation
//
//  Created by Toj on 1/25/21.
//

// MARK: 应用程序传输安全设置
/** 应用程序传输安全设置, 说白了就是是否启用HTTPS, Transport Layer Security, 简称: TLS
 * des: App Transport Security Settings
 * key: NSAppTransportSecurity
 * val: dict->
 * {
 // 设置为YES的话,
 // 就会使得除了开发者在NSExceptionDomains里面配置的域名以外所有的网络连接不受限制
 ** sub des: Allow Arbitrary Loads
 ** sub key: NSAllowsArbitraryLoads
 * sub val: Boolean-> YES/ NO
 *
 // 设置为YES的话,
 // 使用 AVFoundation 播放的在线视频不受 ATS 的限制
 ** sub des: Allows Arbitrary Loads for Media
 ** sub key:
 * sub val: Boolean-> YES/ NO
 *
 // 设置为YES的话,
 // 系统会禁用对来自Web视图的请求的所有ATS限制,
 // 也就是你的WebView的请求不不一定需要HTTPS,
 // APP就可以使用嵌入式浏览器来显示任意内容, 但是应用的其他部分还是需要用ATS
 ** sub des: Allow Arbitrary Loads in Web Content
 ** sub key:
 ** sub val: Boolean-> YES/ NO, 推荐YES
 *
 // NSExceptionDomains其实是相当于NSAllowsArbitraryLoads的一个子集.
 // 后者是全局的作用, 而前者主要是用于对某些域名的限制作用.
 // 他的主要作用其实就是用于自签名的证书
 ** sub des: Exception Domains
 ** sub key:
 ** sub val: dict->
 ** {
 // eg.域
 *** sub des: 520it.com
 *** sub key:
 *** sub val: dict->
 *** {
 // 默认为NO, 设置为YES, 则表示当前设置域名的所有子域名也使用同样的配置
 ** ** sub des: NSIncludesSubdomains
 ** ** sub key:
 ** ** sub val: YES
 // 允许不安全的HTTP请求, 这里所谓的不安全, 不代表改变了TLS 或 HTTPS的请求.
 // 所谓的不安全主要是因为使用自签名的证书,
 // 没有经过CA认证所以苹果并不知道是不是安全的,如果开发者允许那么苹果也允许加载
 ** ** sub des: NSExceptionAllowsInsecureHTTPLoads
 ** ** sub key:
 ** ** sub val: YES
 // 默认值是NO, 设置为YES, 则表示允许App进行不安全的HTTP请求
 ** ** sub des: NSTemporaryExceptionAllowsInsecureHTTPLoads
 ** ** sub key:
 ** ** sub val: YES
 // 默认值为YES, 设置为NO, 则允许不支持完全前向保密(PFS)的TLS密码(对于指定的域名)
 ** ** sub des: NSExceptionRequiresForwardSecrecy
 ** ** sub key:
 ** ** sub val: YES
 *** }
 *** { 域......域 }
 ** }
 * }
 */

// MARK: 更改语言无效
/** 系统提示是什么语言
 * des: Localization native development region
 * key: CFBundleDevelopmentRegion
 * val: en/ china/ .....
 */

// MARK: 可执行文件路径
/**
 * des: Executable file
 * key:
 * val: $(EXECUTABLE_NAME)
 */

// MARK: App 上架AppStore唯一标识
/**
 * des: Bundle identifier
 * key:
 * val: string
 */

// MARK: plist文件的版本号
/**
 * des: InfoDictionary version
 * key:
 * val: 随系统
 */

// MARK: 安装的时候创建的文件夹的名称
/**
 * des: Bundle name
 * key:
 * val:
 */

// MARK: App 桌面名字
/**
 * des: Bundle display name
 * key: CFBundleDisplayName
 * val: string or $(APP_DISPLAY_NAME)
 */

// MARK: 默认情况下程序的主入口
/**
 * des: Main storyboard file base name (macOS)
 * key:
 * val:
 ** sub des:
 ** sub key:
 * sub val:
 */

// MARK:
/**
 * des: Main nib file base name
 * key:
 * val:
 ** sub des:
 ** sub key:
 * sub val:
 */

// MARK: 应用程序已本地化显示名称
/**
 * des: Application has localized display name
 * key: LSHasLocalizedDisplayName
 * val: Boolean-> YES/ NO
 */

// MARK: 摄像头访问
/**
 * des: Privacy - Camera Usage Description
 * key: NSCameraUsageDescription
 * val: String-> "当前App需要访问您的摄像头, 请允许"
 */

// MARK: 麦克风访问
/**
 * des: Privacy - Microphone Usage Description
 * key: NSMicrophoneUsageDescription
 * val: String-> "当前App需要访问您的麦克风, 请允许"
 */

// MARK: Apple事件发送权限
/**
 * des: Privacy - AppleEvents Sending Usage Description
 * key:
 * val:
 */

// MARK: 媒体资料权限
/**
 * des: Privacy - Media Library Usage Description
 * key:
 * val:
 */

// MARK: 蓝牙权限
/**
 * des: Privacy - Bluetooth Peripheral Usage Description
 * key:
 * val:
 */
// MARK: 蓝牙权限
/**
 * des: Privacy - Bluetooth Always Usage Description
 * key:
 * val:
 */

// MARK: 日历权限
/**
 * des: Privacy - Privacy - Calendars Usage Description
 * key:
 * val:
 */

// MARK: 通讯录权限
/**
 * des: Privacy - Contacts Usage Description
 * key:
 * val:
 */

// MARK: FaceID权限
/**
 * des: Privacy - Face ID Usage Description
 * key:
 * val:
 */

// MARK: 读取健康数据权限
/**
 * des: Privacy - Health Records Usage Description
 * key:
 * val:
 */

// MARK: 健康分享权限
/**
 * des: Privacy - Health Share Usage Description
 * key:
 * val:
 */

// MARK: 健康数据更新权限
/**
 * des: Privacy - Health Update Usage Description
 * key:
 * val:
 */

// MARK: HomeKit权限
/**
 * des: Privacy - HomeKit Usage Description
 * key:
 * val:
 */

// MARK: 一直定位包括app使用期间权限
/**
 * des: Privacy - Location Always and When In Use Usage Description
 * key:
 * val:
 */

// MARK: 一直定位权限
/**
 * des: Privacy - Location Always Usage Description
 * key:
 * val:
 */

// MARK: 定位权限
/**
 * des: Privacy - Location Usage Description
 * key:
 * val:
 */

// MARK: App使用期间定位权限
/**
 * des: Privacy - Location When In Use Usage Description
 * key:
 * val:
 */

// MARK: 运动与健身权限
/**
 * des: Privacy - Motion Usage Description
 * key:
 * val:
 */

// MARK: 音乐库添加权限
/**
 * des: Privacy - Music Usage Description
 * key:
 * val:
 */

// MARK: NFC 扫描权限
/**
 * des: Privacy - NFC Scan Usage Description
 * key:
 * val:
 */

// MARK: 相册添加权限
/**
 * des: Privacy - Photo Library Additions Usage Description
 * key:
 * val:
 */

// MARK: 照片库使用权限
/**
 * des: Privacy - Photo Library Usage Description
 * key:
 * val:
 */

// MARK: 在提醒事件中添加事件的权限
/**
 * des: Privacy - Reminders Usage Description
 * key:
 * val:
 */

// MARK: siri权限
/**
 * des: Privacy - Siri Usage Description
 * key:
 * val:
 */

// MARK: 广告权限
/**
 * des: Privacy - Tracking Usage Description
 * key: NSUserTrackingUsageDescription
 * val: string
 */

// MARK: 语音识别权限
/**
 * des: Privacy - Speech Recognition Usage Description
 * key:
 * val:
 */

// MARK: 系统管理权限
/**
 * des: Privacy - System Administration Usage Description
 * key:
 * val:
 */

// MARK: TV权限
/**
 * des: Privacy - TV Provider Usage Description
 * key:
 * val:
 */

// MARK: 字体权限
/** iOS
 * des: Fonts provided by application
 * key: UIAppFonts
 * val: Array
 * sub val: ResourceHanRoundedCN-Bold.ttf
 * sub val: .....
 */

// MARK: 自定义字体权限
/** macOS
 * des: Application fonts resource path
 * key: ATSApplicationFontsPath
 * val: String-> ResourceHanRoundedCN-Bold.ttf
 */

// MARK: 暗黑模式
// https://www.jianshu.com/p/b8d8e17b1435
/** macOS
 * des: NSRequiresAquaSystemAppearance
 * key:
 * val: 1: 关闭, 不需要添加, 跟随系统
 */

// MARK: AppStore分类标识
/**
 * des: Application Category
 * key: LSApplicationCategoryType
 * val: string, 不需要添加
 */

// MARK: 软件包类型
/**
 * des: Bundle OS Type code
 * key: CFBundlePackageType
 * val: string
 * 1. APPL: 应用程序
 * 2. FMWK: 框架
 * 3. BND : 可装载束
 */

// MARK: App 版本号
/**
 * des: Bundle version
 * key: CFBundleVersion
 * val: string
 * eg.: 1.0.1
 */

// MARK: iTunes上展示的版本号
/**
 * des: Bundle version string (short)
 * key: CFBundleShortVersionString
 * val: string, xcode默认即可
 */

// MARK: 指示程序包是否只能运行在iPhone OS 系统上，默认为YES
/**
 * des: Application requires iPhone environment
 * key: LSRequiresIPhoneOS
 * val: Boolean-> YES/ NO
 */

// MARK: 启动页
/**
 * des: Launch screen interface file base name
 * key: UILaunchStoryboardName
 * val: string
 */

// MARK: 程序默认支持的方向
/**
 * des: Supported interface orientations
 * key: UISupportedInterfaceOrientations
 * val: Array, General里设计即可
 */

// MARK: 是否取消控制器管理状态栏
/**
 * des: View controller-based status bar appearance
 * key: UIViewControllerBasedStatusBarAppearance
 * val: Boolean-> YES/ NO
 */

// MARK: 状态栏样式
/**
 * des: Status bar style
 * key: UIStatusBarStyle
 * val: string
 */

// MARK: 设置是否隐藏状态栏. YES时隐藏, NO时不隐藏
/**
 * des: Status bar is initially hidden
 * key: UIStatusBarHidden
 * val: Boolean-> YES/ NO
 */

// MARK: 适用于哪些设备
/**
 * des: Required device capabilities
 * key: UIRequiredDeviceCapabilities
 * val: Array, 百度吧很多
 */

// MARK: 后台执行模式
/**
 * des: Required background modes
 * key: UIBackgroundModes
 * val: Array
 * {
 * Item 0: App plays audio or streams audio/video using AirPlay
 * Item 1: App downloads content in response to push notifications
 * }
 */

// MARK: 白名单
/**
 * 从iOS9开始系统策略更新, 加入对用户隐私以及禁止扫描系统信息的控制, 限制了scheme协议的访问. 需要将其它App注册的scheme添加到应用访问白名单中才能实现以下功能:
 1. 通过scheme检查其它App是否安装, 不添加到白名单则检测结果为未安装(即使应用已经安装)
 2. 通过scheme协议调用其它App, 不添加到白名单则会弹出提示框, 用户确认后才能启动应用, 添加到白名单列表后则无需用户确认直接启动应用
 * des: LSApplicationQueriesSchemes
 * key: LSApplicationQueriesSchemes
 * val: Array, 百度吧很多, 一般都是国外App添加居多
 */

// MARK: URL Schemes跳转
/**
 * des: URL types
 * key: CFBundleURLTypes
 * val: Array
 * {
 * Item0:
 ** {
 ** des: URL types
 ** key: CFBundleURLTypes
 ** val: Dictionary
 *** {
 // 该关键字定义了那些与URL类型有关的应用程序的角色(即该应用程序与某种文档类型的关系)
 // 它的值可以是Editer，Viewer，Printer，Shell或None.
 // 有关这些值的详细描述可以参见“文档的配置”. 该关键字是必须的.
 *** des: Document Role
 *** key: CFBundleTypeRole
 *** val: string
 * URL类型的图标文件名
 *** des:
 *** key: CFBundleURLIconFile
 *** val: string
 // 该关键字包含了这种URL类型的抽象名称字符串
 // 为了确保唯一性，建议您使用Java包方式的命名法则
 // 这个名字作为一个关键字也会在InfoPlist.
 // strings文件中出现, 用来提供该类型名的可读性版本
 *** des: URL identifier
 *** key: CFBundleURLName
 *** val: string -> $(PRODUCT_BUNDLE_IDENTIFIER)
 // 该关键字包含了一组可被这种类型处理的URL协议(大部分是自定义的). 例如：http,ftp等
 *** des: URL Schemes
 *** key: CFBundleURLSchemes
 *** val: Array
 ** ** {
 ** ** Item0 string -> startimes
 ** ** Item1 string
 ** ** ...
 ** ** }
 *** }
 ** }
 ** { Item... }
 * }
 */

// MARK:
/** 取消黑暗模式
 * des: Appearance
 * key: UIUserInterfaceStyle
 * val: Light
 */

// MARK:
/**
 * des:
 * key:
 * val:
 */

// MARK: - 第三方Key
// MARK: Facebook AppID
/**
 * des: FacebookAppID
 * key:
 * val: string-> Facebook申请
 */

// MARK: Facebook 显示名称
/**
 * des: FacebookDisplayName
 * key:
 * val: stirng-> App名称即可
 */

// MARK: 谷歌ID
/**
 * des: GADApplicationIdentifier
 * key:
 * val: string
 */

// MARK: webview谷歌归因
/**
 * des: gad_preferred_webview
 * key:
 * val: wkwebview
/**
 * des: Status bar style
 * key: UIStatusBarStyle
 * val: string
 */

// MARK: 设置是否隐藏状态栏. YES时隐藏, NO时不隐藏
/**
 * des: Status bar is initially hidden
 * key: UIStatusBarHidden
 * val: Boolean-> YES/ NO
 */

// MARK: 适用于哪些设备
/**
 * des: Required device capabilities
 * key: UIRequiredDeviceCapabilities
 * val: Array, 百度吧很多
 */

// MARK: 后台执行模式
/**
 * des: Required background modes
 * key: UIBackgroundModes
 * val: Array
 * {
 * Item 0: App plays audio or streams audio/video using AirPlay
 * Item 1: App downloads content in response to push notifications
 * }
 */

// MARK: 白名单
/**
 * 从iOS9开始系统策略更新, 加入对用户隐私以及禁止扫描系统信息的控制, 限制了scheme协议的访问. 需要将其它App注册的scheme添加到应用访问白名单中才能实现以下功能:
 1. 通过scheme检查其它App是否安装, 不添加到白名单则检测结果为未安装(即使应用已经安装)
 2. 通过scheme协议调用其它App, 不添加到白名单则会弹出提示框, 用户确认后才能启动应用, 添加到白名单列表后则无需用户确认直接启动应用
 * des: LSApplicationQueriesSchemes
 * key: LSApplicationQueriesSchemes
 * val: Array, 百度吧很多, 一般都是国外App添加居多
 */

// MARK: URL Schemes跳转
/**
 * des: URL types
 * key: CFBundleURLTypes
 * val: Array
 * {
 * Item0:
 ** {
 ** des: URL types
 ** key: CFBundleURLTypes
 ** val: Dictionary
 *** {
 // 该关键字定义了那些与URL类型有关的应用程序的角色(即该应用程序与某种文档类型的关系)
 // 它的值可以是Editer，Viewer，Printer，Shell或None.
 // 有关这些值的详细描述可以参见“文档的配置”. 该关键字是必须的.
 *** des: Document Role
 *** key: CFBundleTypeRole
 *** val: string
 * URL类型的图标文件名
 *** des:
 *** key: CFBundleURLIconFile
 *** val: string
 // 该关键字包含了这种URL类型的抽象名称字符串
 // 为了确保唯一性，建议您使用Java包方式的命名法则
 // 这个名字作为一个关键字也会在InfoPlist.
 // strings文件中出现, 用来提供该类型名的可读性版本
 *** des: URL identifier
 *** key: CFBundleURLName
 *** val: string -> $(PRODUCT_BUNDLE_IDENTIFIER)
 // 该关键字包含了一组可被这种类型处理的URL协议(大部分是自定义的). 例如：http,ftp等
 *** des: URL Schemes
 *** key: CFBundleURLSchemes
 *** val: Array
 ** ** {
 ** ** Item0 string -> startimes
 ** ** Item1 string
 ** ** ...
 ** ** }
 *** }
 ** }
 ** { Item... }
 * }
 */

// MARK:
/**
 * des: Appearance
 * key: UIUserInterfaceStyle
 * val: Light
 */

// MARK:
/**
 * des:
 * key:
 * val:
 */

// MARK: - 第三方Key
// MARK: Facebook AppID
/**
 * des: FacebookAppID
 * key:
 * val: string-> Facebook申请
 */

// MARK: Facebook 显示名称
/**
 * des: FacebookDisplayName
 * key:
 * val: stirng-> App名称即可
 */

// MARK: 谷歌ID
/**
 * des: GADApplicationIdentifier
 * key:
 * val: string
 */

// MARK: webview谷歌归因
/**
 * des: gad_preferred_webview
 * key:
 * val: wkwebview
 */
